/*********************************************************************************************************************
 * COPYRIGHT NOTICE
 * Copyright (c) 2018,逐飞科技
 * All rights reserved.
 * 技术讨论QQ群：	一群：179029047(已满)
 *					二群：244861897(已满)
 *					三群：824575535
 *
 * 以下所有内容版权均属逐飞科技所有，未经允许不得用于商业用途，
 * 欢迎各位使用并传播本程序，修改内容时必须保留逐飞科技的版权声明。
 *
 * @file			zf_gint.h
 * @company			成都逐飞科技有限公司
 * @author			逐飞科技(QQ3184284598)
 * @version			查看doc内version文件 版本说明
 * @Software		IAR 8.3 or MDK 5.24
 * @Taobao			https://seekfree.taobao.com/
 * @date			2020-03-25
 * @note			
 ********************************************************************************************************************/

#ifndef _ZF_GINT_H_
#define _ZF_GINT_H_

#include "fsl_gint.h"
#include "zf_gpio.h"
#include "zf_isr.h"

//================== gint interruot mode list ==================
typedef enum
{
	GINT_OR_EDGE				= 0X00,				// GINT 中断 或模式<选定所有管脚信号任意一个触发就生成中断> 边沿模式
	GINT_OR_LEVEL				= 0X40,				// GINT 中断 或模式<选定所有管脚信号任意一个触发就生成中断> 电平模式
	GINT_AND_EDGE				= 0X02,				// GINT 中断 与模式<选定所有管脚信号皆触发才生成中断> 边沿模式
	GINT_AND_LEVEL				= 0X42,				// GINT 中断 与模式<选定所有管脚信号皆触发才生成中断> 电平模式
}gint_mode_list;
//================== gint interruot mode list ==================

//================== gint interruot trig list ==================
typedef enum
{
	GINT_FALL_LOW				= 0,				// GINT 中断 下降沿或底电平有效<取决于 mode 选择的模式>
	GINT_RISE_HIGH,									// GINT 中断 上升沿或高电平有效<取决于 mode 选择的模式>
}gint_trig_list;
//================== gint interruot trig list ==================

void zf_gint_init (GINT_Type *base, gint_mode_list mode, void handler(void));
void zf_gint_pin_set (GINT_Type *base, group_index_list group_index, pin_index_list pin_index, gint_trig_list trig);
void zf_gint_interrupt_enable (GINT_Type *base);
void zf_gint_interrupt_disable (GINT_Type *base);

#endif
